tg-me.com/developer_tools/254
Last Update:
DeepGit: HEAD
Забыл в последней статье упомянуть про HEAD.
В файле .git/HEAD
лежит ссылка на рефернс.
09:32:21 in tmp/git_/first on master •99%
➜ cat .git/HEAD
ref: refs/heads/master
С помощью команды
git symbolic-ref HEAD refs/heads/<branch_name>
Можно ставить HEAD.
Теперь можно полностью понять как работает
git checkout <branch>
.cat .git/HEAD
cat <ref_path>
git cat-file -p <commit_hash>
git cat-file -p <tree_hash>
И дальше уже проходим по blob-ам, и записываем туда версии.
P.S Это весьма топорная реализация
git checkout
, на самом деле все работает немного иначе.Впереди нас еще ждет статья про
pack
файлы и про то, как git оптимизирует хранение файлов.BY Dev Tools
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/developer_tools/254